package com.haizhi.workstation.listener;

import com.haizhi.workstation.mq.MQSender;
import com.haizhi.workstation.util.JSONUtil;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.File;
import java.nio.file.Path;

public interface FileListener {
    /**
     * 在监视目录中新增文件时的处理操作
     * @param file
     */
    void onCreate(Path file);

    /**
     * 在监视目录中修改文件时的处理操作
     * @param file
     */
    void onModify(Path file);

    /**
     * 在监视目录中删除文件时的处理操作
     * @param file
     */
    void onDelete(Path file);
}

class MyListener implements FileListener {
    @Autowired
    private MQSender sender;

    public MyListener(MQSender sender){
        this.sender = sender;
    }
    @Override
    public void onCreate(Path file) {

        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        String f = String.valueOf(file);
        File file1 = new File(f);

        //读取文件,并解析
        String JsonContext = new JSONUtil().getDataFromFile(file1);
        //以消息形式发送大mq,实现异步
        sender.sendFileMessage(JsonContext, String.valueOf(file.getFileName()));
    }

    @Override
    public void onModify(Path file) {

    }

    @Override
    public void onDelete(Path file) {

    }
}